import numpy as np

arr = np.arange(10)  # [0 1 2 3 4 5 6 7 8 9]
print(arr[5])

arr = np.arange(10)
print(arr[2:])

arr = np.arange(10)  # [0 1 2 3 4 5 6 7 8 9]
print(arr[2:5])

arr = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print(arr)
# 从某个索引处开始切割
print('从数组索引 a[1:] 处开始切割')
print(arr[1:])

arr = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print(arr[..., 1])  # 第2列元素
print(arr[1, ...])  # 第2行元素
print(arr[..., 1:])  # 第2列及剩下的所有元素

x = np.array([[1, 2], [3, 4], [5, 6]])
print("x: \n", x)
print(x.shape)
# 获取数组中 (0,0)，(1,1) 和 (2,0) 位置处的元素。
y = x[[0, 1, 2], [0, 1, 0]]
print(y)

x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print('我们的数组是：')
print(x)
print('\n')
rows = np.array([[0, 0], [3, 3]])
cols = np.array([[0, 2], [0, 2]])
y = x[rows, cols]
print('这个数组的四个角元素是：')
print(y)

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("a:\n", a)
b = a[1:3, 1:3]
c = a[1:3, [1, 2]]
d = a[..., 1:]
print("b:\n", b)
print("c:\n", c)
print("d:\n", d)

x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print('我们的数组是：')
print(x)
print('\n')
# 现在我们会打印出大于 5 的元素
print('大于 5 的元素是：')
print(x[x > 5])

a = np.array([np.nan, 1, 2, np.nan, 3, 4, 5])
print(a[~np.isnan(a)])

a = np.array([1, 2 + 6j, 5, 3.5 + 5j])
print(a[np.iscomplex(a)])
